package com.cskaoyan.javase.homework.day05.stage2;

/**
 * @description: String作为引用数据类型的独特性
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

public class Demo {
    public static void main(String[] args) {
        /*
            equals和双等号比较引用时，是有很大区别的
            Object类 String类
            双等号连接引用，比较的一定是地址。（返回true意味着就是一个对象）
            而equals比较两个引用，因为它是一个方法，可以根据不同的场景来写方法实现
                它比较对象相等，可能是比较地址
                也可以比较内容
                还可以比较任何自定义的规则

            String当中的equals方法是安装字符串的内容去比较的
         */
        // 双等号比较的是地址
        // 字符串常量池，在堆上
        String s = "hello";
        String s2 = "hello";
        System.out.println(s == s2);
        System.out.println(s.equals(s2));
        System.out.println("--------------------");

        String s3 = new String("hello");
        System.out.println(s2 == s3);
        System.out.println(s3.equals(s2));
        System.out.println(s2.equals(s3));
    }
}
